<#-- 自定义的分页指令。
属性说明：
   pageNo      当前页号(int类型)
   size    每页要显示的记录数(int类型)
   url       点击分页标签时要跳转到的目标URL(string类型)
   count 总记录数(int类型)
   gotoPage 是否显示跳转输入框(boolean类型)，为true时显示
 使用方式：
  <#if count??>
    <#import "/pager.ftl" as p>
    <@p.pager pageNo=pageNo size=size count=count url="test.do" showNum=false/>
  </#if>
 -->

<#macro pager start size url count gotoPage>
	<#assign pageNo = ((start / size)?int + 1)>
  <#-- 定义局部变量pageCount保存总页数 -->
  <#assign pageCount=((count + size - 1) / size)?int>
	<#if count==0><#return/></#if>
<#-- 页号越界处理 -->
  <#if (pageNo > pageCount)>
    <#assign pageNo=pageCount>
  </#if>
  <#if (pageNo < 1)>
    <#assign pageNo=1>
  </#if>
<#-- 输出分页表单 -->
    <!-- 分页开始 -->
    <div class="page">
		<div>
			<#if (pageNo > 1)>
					<a class="first" href="${url}&ps=${size}&pn=1">首页</a>
			    	<a class="prev" href="${url}&ps=${size}&pn=${pageNo - 1}">上一页</a>
		    </#if>
		    
		    <#-- 如果前面页数过多,显示... -->
			<#assign startPage=1>
			<#if (pageNo > 4)>
		    <#assign startPage=(pageNo - 1)>
			    	<a class="num" href="${url}&ps=${size}&pn=1">1</a>
			    	<a class="num" href="${url}&ps=${size}&pn=2">2</a>
			    	<a class="num" href="javascript:void(0);" >&hellip;</a>
			</#if>
			<#-- 显示当前页号和它附近的页号 -->
			<#assign end=(pageNo + 1)>
			<#if (end > pageCount)>
				<#assign end=pageCount>
			</#if>
		  <#list startPage..end as i>
		    <#if (pageNo==i)><span class="current">${i}</span>
				<#else>
			    	<a class="num" href="${url}&ps=${size}&pn=${i}">${i}</a>
		    </#if>
		  </#list>
			<#-- 如果后面页数过多,显示... -->
			<#if (end < pageCount - 2)>
			<a class="num" href="javascript:void(0);">&hellip;</a>
			  	</#if>
			  <#if (end < pageCount - 1)>
			  	<a class="num" href="${url}&ps=${size}&pn=${pageCount - 1}">${pageCount-1}</a>
		  </#if>
		<#if (end < pageCount)>
			<a class="num" href="${url}&ps=${size}&pn=${pageCount}">${pageCount}</a>
		</#if>
		<#-- 下一页处理 -->
		  <#if (pageNo < pageCount)>
  			<a class="next" href="${url}&ps=${size}&pn=${pageNo + 1}">下一页</a>
  			<a class="end" href="${url}&ps=${size}&pn=${pageCount}">尾页</a>
		  </#if>
		</div>
	</div>
	<!-- 分页结束 -->
</#macro>